static TreeManagerBasePtr create(const YAML::Node& _input_node, \
const std::vector<std::string>& _folders_schema = {}) \
{ \
if (not _folders_schema.empty()) \
{ \
auto server = yaml_schema_cpp::YamlServer(_folders_schema); \
server.setYaml(_input_node); \
if (not server.applySchema(#TreeManagerClass)) \
{ \
WOLF_ERROR(server.getLog()); \
return nullptr; \
} \
return std::shared_ptr<TreeManagerClass>(new TreeManagerClass(server.getNode())); \
} \
return std::shared_ptr<TreeManagerClass>(new TreeManagerClass(_input_node)); \
} \
static TreeManagerBasePtr create(const std::string& _yaml_filepath, \
const std::vector<std::string>& _folders_schema) \
{ \
auto server = yaml_schema_cpp::YamlServer(_folders_schema, _yaml_filepath); \
if (not server.applySchema(#TreeManagerClass)) \
{ \
WOLF_ERROR(server.getLog()); \
return nullptr; \
} \
return create(server.getNode(), {}); \
}